package com.m1.tzolkin.model.temples;

import java.io.Serializable;

import com.m1.tzolkin.model.Action;
import com.m1.tzolkin.model.Season;
import com.m1.tzolkin.model.util.zone.ISteppable;


/**
 * Un temple du plateau de jeu.
 * Les temples sont des escaliers qui contiennent des actions appliqu�es � chaque fin de saison.
 * En milieu et en fin de p�riode, la marche sur laquelle chaque joueur se trouve
 *  lui rapporte des points et/ou des ressources.
 *
 */
public interface ITemple extends ISteppable, Serializable {
	
	// REQUETES
	
	/**
	 * Retourne le nom de ce temple.
	 */
	String getName();
	
	/**
	 * Retourne le nombre de points que gagne le joueur
	 *  le plus haut à l'issue de la time-ième fin de période.
	 * @pre <pre>
	 *     time >= 0 </pre>
	 */
	int getTopPoints(int time);
	
	/**
	 * Retourne les actions de la p�riode s.
	 * @pre <pre>
	 *     s != null </pre>
	 */
	Action[] getActions(Season s);
	
}
